The present invention relates to data processing by digital computer, and more particularly to communication between components on a distributed software system.
A distributed software system is made up of multiple software components operating on one or more computers. There can be multiple components on one single computer, or the components can be distributed across multiple computers. The computers can be in the same location and connected by a local network, or physically distant from each other and connected by a wide area network.
In such a system, the individual components must be able to communicate with one another. Since a distributed software system is made up of a variety of software components, a communications method is required that can be understood by all of the components. One implementation of such a method is a transactional model.
By implementing a transactional model, multiple software components can work concurrently, while avoiding conflicts and errors. For example, if multiple clients interact with the same database table concurrently, it is possible that interleaved database operations could leave the table in an inconsistent state. The transactional model defines when and how each operation can proceed, ensuring that operations that conflict cannot be executed simultaneously.
Further, a transactional model can provide details on how to handle failures that can naturally occur during the execution of an operation. For example, a database update operation might involve several dependent tables. If the computer system fails when the database update is only partially completed, the database could potentially be left in an inconsistent, even inoperable, state. The transactional model can define how to rollback the original operation, such that the system can be left in the same state as it was before the failed operation was initiated.